A geofence is a software-defined virtual perimeter for a physical world area that when intersected by a device as detected using a location-based service causes an event to occur such as a notification to be sent. Accordingly, geofencing is becoming increasingly popular for delivering reminders and other location-based notifications to users. For example, a user can explicitly ask their mobile device to issue a reminder to “pick up milk from <name of a grocery store> on the way home”. In this case, a geofence is created around the grocery store and the system triggers communication of the reminder to the user when the user intersects the geofence virtual perimeter.
However, existing solutions provide naive schemes for constructing geofences around entities where the schemes are entity-oblivious and one-size-fits-all applications fail to make geofencing-based solutions effective. While context-oblivious geofences can be very noisy, thereby giving rise to many false negatives and positive triggers, the added capability to manually edit the geofences is tedious and impractical. For example, in speech-based scenarios, the user may enter reminders by voice commands while driving. In such cases, it is impossible for the user to visualize the geofence on a map in order to tell if it is properly placed and sized, let alone to manually edit the geofence.